Package-level declarations
Types
Conservative default ConflictDetector that classifies every clash as a ConflictType.Contradiction. With it installed, conflict classification is a no-op refinement and behaviour matches a reviser with no conflict typing.
Policy SPI: resolves the AuthorityTier of a proposition's source.
How authoritative the source backing a proposition is.
A TrustScorer that scores a proposition purely by the authority of its source: more authoritative tiers get a higher trust score. This is the natural step up from NeutralTrustScorer for consumers who want "trust the source" behaviour without writing their own model.
One proposed pair of propositions worth scoring.
Proposes candidate pairs worth scoring, e.g. by vector clustering.
Names one collapse to undo, inside the context that owns it.
The undo was wired with something it cannot work from: no audit records to authorize it, or a proposition store that cannot subtract evidence atomically. Both are configuration mistakes, and both are thrown before the undo reads or writes anything.
A proposition the undo was told to touch lives in a different context. Thrown before any write, so the other context's graph is left exactly as it was.
The result of undoing one collapse: the survivor with that member's exclusive evidence subtracted, and the member restored to its prior status.
A scored, aggregated edge between two propositions across all signals.
A connected component of propositions the collector formed from surviving edges.
Records everything needed to reverse a collapse: the run it belongs to, the chosen survivor, and for each retired proposition its prior status plus the grounding, provenance and source ids that a merging sweep folded onto the survivor. The runId lets a caller find the candidate edges (and their per-signal scores) behind this decision via CollectorTraceQuery.findEdgesByRun.
Scores one proposed pair on a single signal. Returning null means abstain — the signal is left out of the blend. Inject dependencies via the constructor, not per call.
The read side of the collector trace: look up what a run decided, or explain why one proposition was collapsed. Callers that only need to inspect trace data (e.g. an admin API) should depend on this instead of the concrete storage implementation.
Persists the collector's inspectable decision trace under a run id. In-memory and graph-backed implementations both satisfy this.
Policy SPI: classifies the ConflictType between an incoming proposition and an existing one it appears to contradict.
Classifies the nature of a conflict between an incoming proposition and an existing one that it appears to contradict.
Groups proposition ids into connected components from scored, non-vetoed edges.
Default StatusTransitionPolicy: transitions ACTIVE → STALE when a proposition's decayed utility drops below stalenessThreshold, and STALE → ACTIVE when utility recovers above recoveryThreshold.
Metadata keys drift quarantine writes onto a proposition, alongside the shared com.embabel.dice.common.DiceMetadataKeys.QUARANTINE_REASON.
Decides which propositions a schema change has stranded, and flags them.
The store-side operations a host needs to act on a drift check: find the propositions a schema change could have stranded, quarantine them, and let them back out again.
AuthorityResolver that always returns a single configured tier, ignoring the proposition entirely. Useful when every proposition in a context shares the same provenance, or as a deterministic stand-in.
A thread-safe, in-process CollectorTraceStore that keeps everything in concurrent maps keyed by run id. Good for tests and single-node setups that don't need the trace to survive a restart; a graph-backed store can implement the same interface for durability.
An in-memory ConnectedComponentsFinder that unions the endpoints of every non-vetoed edge with a simple union-find, then reports each id's component as its root.
Why a proposition was marked for collection by a CollectorStrategy.
The shipped DriftQuarantinePolicy: quarantine a proposition when one of its entity mentions names a type the schema change made lossy. Lossy means the change can strand data that was already extracted:
Sweep policy for the dedup path: collapse near-duplicates by merging the loser's evidence onto its survivor rather than just flipping it STALE.
Default TrustScorer that trusts every proposition equally, returning 1.0 regardless of the proposition, its authority tier, or any conflict.
An immutable record that a CollectorStrategy has marked a proposition for collection.
The reference DriftSweepCapable: a working sweep over any PropositionStore, and the executable statement of what the contract means.
What a policy decided about one Proposition.
What a whole sweep decided, with one decision per proposition it was given.
One proposition that was folded into a survivor, and what a merging sweep would carry over from it (grounding, provenance and source ids) so the fold can be undone.
Policy SPI: determines whether a proposition should transition lifecycle status.
Default SweepPolicy: non-destructive and safe for pinned propositions.
AuthorityResolver that maps a proposition's grounding locator kinds to authority tiers via tierByLocatorKind.
What the sweep phase should do with a marked proposition, as decided by a SweepPolicy.
The "sweep" half of the mark-and-sweep collector: given a proposition and its marks, decides what should actually happen to it as a SweepAction.
ConflictDetector that distinguishes world progression from genuine contradiction using the proposition predicate and temporal recency.
Policy SPI: assigns a trust score to a proposition.
Functions
Undoes ONE collapse — a single survivor/retired-member pair — without disturbing the run's other collapses. This is the targeted counterpart to a run-level undo: restore exactly the member named by CollapseUndoCommand.retiredId to its prior status, and subtract only what it (no other still-retired member of the same collapse) contributed to the survivor.
The undo as it shipped before the command form: no context to check ownership against and no audit records to confirm the collapse was applied, so it restores the member and subtracts its folded refs on the trace's word alone. Kept so a caller compiled against the four-argument form keeps working; the guarded form above is what new code should call, and this one goes in the next minor release.